/**
 * 资源管理器由Ext.tree.TreeLoader实现 每个JS文件就是一个Ext.tree.TreeNode
 * TreeNode的ID为文件在服务器上的文件路径 重写TreeLoader的processResponse方法 数据与后台交互的原理：
 * URL：url可以是一个SERVLET、action访问路径、JSP页面 请求响应的结果是一个对象数组形式。 ext接受到数据会自动封装并添加到父节点上
 * 假如返回来的结果不是一个对象数组形式。但是又想在前台可以接受到数据、
 * 那就要重写Ext.tree.TreeLoader的接受方法processResponse该方法的原代码20行、可以在此基础上进行修改 过滤掉svn文件夹
 */
var dLoader = Ext.extend(Ext.tree.TreeLoader, {
	processResponse : function(response, node, callback, scope) {
		var json = response.responseText;
		//log(json);
		try {
			var o = response.responseData || Ext.decode(json);
			node.beginUpdate();
			var len = o.length;
			for (var i = 0;i < len; i++) {
				var n = this.createNode(o[i]);
				if (n && n.text != ".svn") {
					node.appendChild(n);
				}
			}
			node.endUpdate();
			this.runCallback(callback, scope || node, [node]);
		} catch (e) {
			this.handleFailure(response);
		}
	}
});
// default path
//var basefolder = "E:\\chenwei\\myProject\\scriptDebug\\web\\userfile\\js";
var rootnode = new Ext.tree.AsyncTreeNode( {
	text : Module.baseText,
	draggable : false,
	id : Module.basef
});

var Module = (function(parent) {
	var my = parent.region = parent.region || {};
	//parent.basef = basefolder;
	my.west = {
		region : 'west',
		id : 'west-panel',
		title : '',
		split : true,
		width : 200,
		minSize : 175,
		maxSize : 400,
		collapsible : true,
		margins : '0 0 0 5',
		layout : 'accordion',
		layoutConfig : {
			animate : true
		},
		items : [new Ext.tree.TreePanel( {
			id : 'west-nav',
			contentEl : 'west',
			iconCls : 'settings',
			title : '资源管理器',
			animate : true,
			autoScroll : true,
			clearOnLoad : true,
			tbar : {
				width : 30,
				items : [ {
					id : "newbtn",
					icon : 'images/add.gif',
					tooltip : '新建'
				}, {
					id : "delbtn",
					icon : 'images/del.gif',
					tooltip : '删除'
				}, {
					id : "uploadbtn",
					icon : 'images/upload.png',
					cls : 'x-btn-icon',
					tooltip : '上传'
				}, {
					id : "refreshbtn",
					text : '刷新',
					tooltip : '刷新'
				}, {
					id : "renamebtn",
					text : '重命名',
					tooltip : '重命名'
				}]
			},
			loader : new dLoader( {
				id : 'treeLoader',
				dataUrl : 'extAjax',
				listeners : {
					beforeload : function(treeLoader, node) {
						this.baseParams.path = node.id;
					}
				},
				baseParams : {
					mothed : "treeloader"
				}
			}),
			root : rootnode,
			enableDD : true,
			containerScroll : true,
			border : false
		}), {
			id : 'west-settings',
			title : '设置',
			html : '<p>Some settings in here.</p>',
			border : false,
			iconCls : 'settings'
		}]
	};
	return parent;
}(Module || {}));